package 传智播客_黑马.java高级.reflect反射;

import java.lang.reflect.Field;

//获取类的成员变量
public class GetField {

    public static void main(String[] args) throws Exception {
        Class<Person> personClass = Person.class;
//        getField/getContructor/getMethod都是只能对public的进行处理（执行，将成员变量的值改变，获取……）,
//        用getDeclatedMethod……搭配setAccessible就可以对任意的访问修饰权限进行操作，也就是说在反射里没有权限一说，什么权限都可以被外界访问到
        Field name = personClass.getDeclaredField("name");

        Person person = new Person();
        name.setAccessible(true); //无视权限(暴力反射)
        System.out.println(name.get(person)); //name.get(实例对象):获取这个/访问
        name.set(person,"小艾同学"); //对某个成员变量进行改变：name.set(实例对象，赋值给成员变量的值)
        System.out.println(name.get(person));
        System.out.println(person);
    }
}
